﻿using System.Collections.Generic;

namespace com.binance.client.model.@event
{
	using BinanceApiConstants = com.binance.client.constant.BinanceApiConstants;
	using ToStringBuilder = org.apache.commons.lang3.builder.ToStringBuilder;

	using OrderBookEntry = com.binance.client.model.market.OrderBookEntry;

	public class OrderBookEvent
	{

		private string eventType;

		private long? eventTime;

		private long? transactionTime;

		private string symbol;

		private long? firstUpdateId;

		private long? lastUpdateId;

		private long? lastUpdateIdInlastStream;

		private IList<OrderBookEntry> bids;

		private IList<OrderBookEntry> asks;

		public virtual string EventType
		{
			get
			{
				return eventType;
			}
			set
			{
				this.eventType = value;
			}
		}


		public virtual long? EventTime
		{
			get
			{
				return eventTime;
			}
			set
			{
				this.eventTime = value;
			}
		}


		public virtual long? TransactionTime
		{
			get
			{
				return transactionTime;
			}
			set
			{
				this.transactionTime = value;
			}
		}


		public virtual string Symbol
		{
			get
			{
				return symbol;
			}
			set
			{
				this.symbol = value;
			}
		}


		public virtual long? FirstUpdateId
		{
			get
			{
				return firstUpdateId;
			}
			set
			{
				this.firstUpdateId = value;
			}
		}


		public virtual long? LastUpdateId
		{
			get
			{
				return lastUpdateId;
			}
			set
			{
				this.lastUpdateId = value;
			}
		}


		public virtual long? LastUpdateIdInlastStream
		{
			get
			{
				return lastUpdateIdInlastStream;
			}
			set
			{
				this.lastUpdateIdInlastStream = value;
			}
		}


		public virtual IList<OrderBookEntry> Bids
		{
			get
			{
				return bids;
			}
			set
			{
				this.bids = value;
			}
		}


		public virtual IList<OrderBookEntry> Asks
		{
			get
			{
				return asks;
			}
			set
			{
				this.asks = value;
			}
		}


		public override string ToString()
		{
			return (new ToStringBuilder(this, BinanceApiConstants.TO_STRING_BUILDER_STYLE)).append("eventType", eventType).append("eventTime", eventTime).append("transactionTime", transactionTime).append("symbol", symbol).append("firstUpdateId", firstUpdateId).append("lastUpdateId", lastUpdateId).append("lastUpdateIdInlastStream", lastUpdateIdInlastStream).append("bids", bids).append("asks", asks).ToString();
		}
	}

}